home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 11255 / 11255.xpi / chrome / content / controller / Utils.js < prev    next >
Text File  |  2009-11-25  |  5KB  |  145 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * 
  3.  * Pearltrees add-on AMO, Copyright(C), 2009, Broceliand SAS, Paris, France 
  4.  * (company in charge of developing Pearltrees)
  5.  * 
  6.  * This file is part of ΓÇ£Pearltrees add-on AMOΓÇ¥.  
  7.  * 
  8.  * Pearltrees add-on AMO is free software: you can redistribute it and/or modify it under the 
  9.  * terms of the GNU General Public License version 3 as published by the Free Software Foundation.
  10.  * 
  11.  * Pearltrees add-on AMO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
  12.  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
  13.  * See the GNU General Public License for more details.
  14.  * 
  15.  * You should have received a copy of the GNU General Public License along with Pearltrees add-on AMO. 
  16.  * If not, see <http://www.gnu.org/licenses/>
  17.  * 
  18.  * ***** END LICENSE BLOCK ***** */
  19.  
  20. /////////////////////////////////////////////////////////////////////////////////
  21. // Miscelaneous tools
  22. /////////////////////////////////////////////////////////////////////////////////
  23.  
  24. var BRO_tools = {
  25.     
  26.     trim:function(myString) {
  27.         if(!myString) return "";
  28.         return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
  29.     },
  30.     
  31.     removeFirefoxNameFromTitle:function(title) {
  32.         return title.replace(/ - Mozilla Firefox/,"");
  33.     },
  34.     
  35.     /**
  36.      * Open a new tab with a specific URL.
  37.      * @param string url
  38.      */
  39.     openAndReuseOneTabPerURL:function(url) {       
  40.         var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
  41.                            .getService(Components.interfaces.nsIWindowMediator);
  42.         var browserEnumerator = wm.getEnumerator("navigator:browser");
  43.     
  44.         // Check each browser instance for our URL
  45.         var found = false;
  46.         while (!found && browserEnumerator.hasMoreElements()) {
  47.             var browserInstance = browserEnumerator.getNext().getBrowser();
  48.     
  49.             // Check each tab of this browser instance
  50.             var numTabs = browserInstance.tabContainer.childNodes.length;
  51.             for(var index=0; index<numTabs; index++) {
  52.                 var currentBrowser = browserInstance.getBrowserAtIndex(index);
  53.                 if (currentBrowser.currentURI && url == currentBrowser.currentURI.spec) {
  54.                     
  55.                      // The URL is already opened. Select this tab.
  56.                     browserInstance.selectedTab = browserInstance.tabContainer.childNodes[index];
  57.     
  58.                     // Focus *this* browser
  59.                     browserInstance.focus();
  60.                     found = true;
  61.                     break;
  62.                 }
  63.             }
  64.         }
  65.         // Our URL isn't open. Open it now.
  66.         if (!found) {
  67.             var recentWindow = wm.getMostRecentWindow("navigator:browser");
  68.             if (recentWindow) {
  69.                 // Use an existing browser window
  70.                 recentWindow.delayedOpenTab(url, null, null, null, null);
  71.             }
  72.             else {
  73.                 // No browser windows are open, so open a new one.
  74.                 window.open(url);
  75.             }
  76.         }
  77.     },
  78.     
  79.     /**
  80.      * Set the browser window's location to the incoming URL
  81.      * @param string URL to show
  82.      */
  83.     openURLinCurrentTab:function(url, delay, browserID) {
  84.         if(!delay) {
  85.             var selectedBrowser = null;
  86.             if(browserID) {                
  87.                 selectedBrowser = BRO_browserManager.getBrowserByID(browserID);
  88.             }
  89.             if(!selectedBrowser) {                       
  90.                 selectedBrowser = BRO_browserManager.getSelectedBrowser();
  91.             }
  92.             selectedBrowser.contentDocument.location = url;        
  93.         }
  94.         else{
  95.             browserID = BRO_browserManager.getSelectedBrowserID();                  
  96.             BRO_tools.callWithDelay("BRO_tools.openURLinCurrentTab('"+url+"',null,'"+browserID+"')",delay);
  97.         }
  98.     },
  99.     
  100.     callWithDelay:function(code, time, param) {
  101.         // Having an issue with  nsITimer, thus we use setTimeout
  102.         setTimeout(code, time, param);
  103.     },
  104.     
  105.     getTime:function() {
  106.         var date = new Date();
  107.         return date.getTime();
  108.     },
  109.     
  110.     randomID:function(size) {
  111.         var str = "";
  112.         for(var i = 0; i < size; i++)
  113.         {
  114.             str += this.getRandomChar();
  115.         }
  116.         return str;
  117.     },
  118.     
  119.     getRandomChar:function() {
  120.         var chars = "0123456789abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
  121.         return chars.substr( this.getRandomNumber(62), 1 );
  122.     },
  123.     
  124.     getRandomCharWithSpace:function() {
  125.         var chars = "0123456789 abcdefghijklmnop qur stuvwxyz ABCDEFGHIJ KLMNOPQURSTUVW XYZ";
  126.         return chars.substr( this.getRandomNumber(68), 1 );
  127.     },    
  128.     
  129.     getRandomNumber:function(range) {
  130.         return Math.floor(Math.random() * range);
  131.     },    
  132.     
  133.     /**
  134.      * Return a random string with a specified chars lnumber.
  135.      * @param integer num Number of chars
  136.      * @return string
  137.      */
  138.     getRandomString:function(num) {
  139.         var string = '';
  140.         for(var i=0;i<num;i++) {
  141.             string = string+BRO_tools.getRandomCharWithSpace();
  142.         }
  143.         return string;
  144.     }
  145. }